package com.nbsaas.boot.executor;

import com.nbsaas.boot.plugin.Plugin;
import com.nbsaas.boot.plugin.PluginManager;
import java.io.File;

/**
 * 插件系统示例
 */
public class App 
{
    public static void main( String[] args ) throws Exception
    {
        if (args.length < 1) {
            System.out.println("请提供插件JAR文件路径");
            return;
        }

        String pluginJarPath = args[0];
        File pluginJar = new File(pluginJarPath);
        
        if (!pluginJar.exists()) {
            System.out.println("插件JAR文件不存在: " + pluginJarPath);
            return;
        }

        // 创建插件管理器
        PluginManager pluginManager = new PluginManager();
        
        try {
            // 加载插件
            System.out.println("正在加载插件: " + pluginJarPath);
            Plugin plugin = pluginManager.loadPlugin(pluginJar);
            
            // 显示插件信息
            System.out.println("插件信息：");
            System.out.println("ID: " + plugin.getId());
            System.out.println("名称: " + plugin.getName());
            System.out.println("版本: " + plugin.getVersion());
            System.out.println("描述: " + plugin.getDescription());
            
            // 启动插件
            System.out.println("\n启动插件...");
            pluginManager.startPlugin(plugin.getId());
            
            // 等待一段时间
            Thread.sleep(5000);
            
            // 停止插件
            System.out.println("\n停止插件...");
            pluginManager.stopPlugin(plugin.getId());
            
            // 卸载插件
            System.out.println("\n卸载插件...");
            pluginManager.unloadPlugin(plugin.getId());
            
        } catch (Exception e) {
            System.err.println("插件操作失败: " + e.getMessage());
            e.printStackTrace();
        }
    }
}
